package com.cDesarrollador.bean;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;

import javax.faces.bean.ViewScoped;

import java.util.List;
import com.cDesarrollador.model.Categoria;
import com.cDesarrollador.service.ICategoriaService;
import com.cDesarrollador.utilidades.UtilidadesCDesarrollador;

@ManagedBean(name = "categoriaManagedBean")
@ViewScoped
public class CategoriaManagedBean implements Serializable {

	UtilidadesCDesarrollador utilidades = new UtilidadesCDesarrollador(
			CategoriaManagedBean.class.getName());

	private static final long serialVersionUID = 1L;

	@ManagedProperty(value = "#{CategoriaService}")
	ICategoriaService categoriaService;

	// Datos de manejo de la pantalla y cargue de la informacion

	public int idCategoria;
	public List<Categoria> listaCategoria;

	// Atributos para crear

	int count = 0;
	private String nuevoNombreCategoria;

	private String nuevodescripcionCateroria;

	// Atributos para modificar

	private String nombreCategoria;
	private String descripcionCateroria;
	// /Objetos

	public Categoria categoria ;

	public void guardar(

	) {
		System.out.println("Entre");
		Categoria categoria = new Categoria();
		categoria.setDescripcion(nuevodescripcionCateroria);
		categoria.setNombre(nuevoNombreCategoria);

		try {
			categoriaService.addCategoria(categoria);
			// /utilidades.loggInformacion("Se creado el catergoria");
			System.out.println("Se creado el catergoria");
			limpiar();

		} catch (Exception e) {

			// utilidades.loggwarning("Error al guardar : " + e.getMessage());
			System.out.println();
			System.out.println(e.getMessage());

			limpiar();
		}

	}

	public void test() {

		System.out.println("Descripcion" + categoria.getDescripcion());
	}

	public void limpiar() {
		nuevodescripcionCateroria = null;
		nuevoNombreCategoria = null;

	}

	public void actulizar() {

		try {
			categoria.setDescripcion(descripcionCateroria);
			categoria.setNombre(nombreCategoria);

			categoriaService.updateCategoria(categoria);
			// utilidades.loggInformacion("Se actulizado el catergoria");
		} catch (Exception e) {

			// /utilidades.loggwarning("Error al actulizar : " +
			// e.getMessage());
			descripcionCateroria = null;
			nombreCategoria = null;
		}

	}

	public String getNuevoNombreCategoria() {
		return nuevoNombreCategoria;
	}

	public void setNuevoNombreCategoria(String nuevoNombreCategoria) {
		this.nuevoNombreCategoria = nuevoNombreCategoria;
	}

	public String getNuevodescripcionCateroria() {
		return nuevodescripcionCateroria;
	}

	public void setNuevodescripcionCateroria(String nuevodescripcionCateroria) {
		this.nuevodescripcionCateroria = nuevodescripcionCateroria;
	}

	public String getNombreCategoria() {
		return nombreCategoria;
	}

	public void setNombreCategoria(String nombreCategoria) {
		this.nombreCategoria = nombreCategoria;
	}

	public String getDescripcionCateroria() {

		return descripcionCateroria;
	}

	public void setDescripcionCateroria(String descripcionCateroria) {
		this.descripcionCateroria = descripcionCateroria;
	}

	public int getIdCategoria() {
		return idCategoria;
	}

	public void setIdCategoria(int idCategoria) {
		this.idCategoria = idCategoria;
	}

	public List<Categoria> getListaCategoria() {
		listaCategoria = categoriaService.getCategorias();
		return listaCategoria;
	}

	public void setListaCategoria(List<Categoria> listaCategoria) {
		this.listaCategoria = listaCategoria;
	}

	public ICategoriaService getCategoriaService() {
		return categoriaService;
	}

	public void setCategoriaService(ICategoriaService categoriaService) {
		this.categoriaService = categoriaService;
	}

	public Categoria getCategoria() {
		

		return categoria;
	}

	public void setCategoria(Categoria categoria) {
		this.categoria = categoria;
	}

}
